/**
 * 所有数值存储方式为IEEE 754 64 位格式存储
 * 有符号整数使用 32 位的前 31 位表示整数值。
 * 第 32 位表示数值的符号，如 0 表示正，1 表示负。这一位称为符号位(sign bit)
 */

/**
 * 正负数的关系
 * 负数依据整数得来的3个步骤
 * ①确定负数绝对值的二进制表示
 * ②取二进制的反码
 * ③给结果+1
 */
let a = 5
let b = ~a //取反码
console.log(b) //-6

//特殊值 NaN 和 Infinity在位操作中被当做0处理
//0的反码是-1
console.log(~NaN)
console.log(~Number.POSITIVE_INFINITY)
